﻿CREATE PROCEDURE [Cucina].[SP_TavoliInGestione_L]
AS
	WITH UltimoTavolo(Tavolo, DataOra) AS
	(
		SELECT Tavolo, MAX(DataOra)
		FROM Cucina.TavoloReset
		GROUP BY Tavolo
	)
	SELECT DISTINCT TavoloAssegnato, CASE WHEN UltimoTavolo.Tavolo IS NOT NULL THEN 'Inizializzato' ELSE 'N/A' END AS Inizializzato
	FROM Cucina.Comanda
	LEFT JOIN UltimoTavolo
		ON UltimoTavolo.Tavolo = Comanda.TavoloAssegnato
	WHERE Comanda.TavoloAssegnato IS NOT NULL
	AND (Comanda.DataOra >= UltimoTavolo.DataOra OR UltimoTavolo.DataOra IS NULL)
	AND ComandaID NOT IN (SELECT ComandaID FROM Cucina.ComandaDeleted)
	AND ComandaID NOT IN (SELECT ComandaID FROM Cucina.ComandaLocked)
	--AND Comanda.ComandaID NOT IN 
	--(
	--	SELECT ComandaID
	--	FROM Cucina.ComandaConsegna
	--	WHERE Esito = 1
	--)
RETURN 0